package com.recSystem.Service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.recSystem.Entity.DO.AuthorDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.recSystem.Entity.DTO.*;
import com.recSystem.Entity.DTO.Param.AuthorInfoParam;
import com.recSystem.Entity.POJO.HttpResponse;

import java.util.List;

public interface AuthorService extends IService<AuthorDO> {

    HttpResponse<AuthorNetDTO> getAuthorNet(AuthorInfoParam param, String token);

    IPage<AuthorInterestDTO> getInterestAuthorsPage(int userId, int maxLength, int offset);
    /**
     * 根据用户id集合得到用户DTO对象集合,有一个类型转换，方便序扩展
     * @param authorIds
     * @return
     */
    List<AuthorDTO> getAuthorDTOsByBathId(List<Integer> authorIds);

    /**
     * 根据作者id获取作者的基本信息
     * @param author
     * @return 作者基本信息，包括名字和参与的论文列表
     */
    AuthorInfoDTO getAuthorInfoById(Integer author);

    /**
     * 根据论文id获取作者列表
     * @param paperId
     * @return 作者DTO集合
     */
    List<AuthorDTO> getAuthorsByPaperId(int paperId);
}
